|
A locally testable code is a type of error-correcting code for which it can be determined if a string is a word in that code by looking at a small (frequently constant) number of bits of the string. In some situations, it is useful to know if the data is corrupted without decoding all of it so that appropriate action can be taken in response. For example, in communication, if the receiver encounters a corrupted code, it can request the data be re-sent, which could increase the accuracy of said data. Similarly, in data storage, these codes can allow for damaged data to be recovered and rewritten properly. In contrast, locally decodable codes use a small number of bits of the codeword to probabilistically recover the original information. The fraction of errors determines how likely it is that the decoder correctly recovers the original bit; however, not all locally decodable codes are locally testable. Clearly, any valid codeword should be accepted as a codeword, but strings that are not codewords could be only one bit off, which would require many (certainly more than a constant number) probes. To account for this, testing failure is only defined if the string is off by at least a set fraction of its bits. This implies words of the code must be longer than the input strings by adding some redundancy. == Definition == To measure the distance between two strings, the Hamming distance is used : The distance of a string from a code is computed by : Relative distances are computed as a fraction of the number of bits : A code is called -local -testable if there exists a Turing machine M given random access to an input that makes at most non-adaptive queries of and satisfies the following: : * For any and , . In other words, M accepts given access to any codeword of C. : * For such that , . M must reject strings -far from C at least half the time. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「locally testable code」の詳細全文を読む スポンサード リンク
|